<!doctype HTML public "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- Click to Convert 5.2: Anything to HTML -->
<!-- http://www.clicktoconvert.com -->

<html>
<head>
<title>gravityboxscheduleuserguide - page 107 of 234</title>
<meta http-equiv=content-type content=text/html;charset=iso-8859-1>
<meta name="Generator" content="Click to Convert">

<!--Start of page styles-->
<STYLE TYPE="text/css">
<!--
 /* Foreground Image Styles */

 /* Position Styles */
 .ts107p0{position:absolute;left:106px;top:97px;}
 .ts107p1{position:absolute;left:352px;top:97px;}
 .ts107p3{position:absolute;left:665px;top:97px;}
 .ts107p7{position:absolute;left:106px;top:113px;}
 .ts107p8{position:absolute;left:706px;top:1026px;}
 .ts107p9{position:absolute;left:331px;top:1044px;}
 .ts107p13{position:absolute;left:106px;top:146px;}
 .ts107p14{position:absolute;left:106px;top:164px;}
 .ts107p17{position:absolute;left:106px;top:183px;}
 .ts107p18{position:absolute;left:106px;top:201px;}
 .ts107p19{position:absolute;left:106px;top:220px;}
 .ts107p20{position:absolute;left:106px;top:238px;}
 .ts107p22{position:absolute;left:106px;top:256px;}
 .ts107p23{position:absolute;left:106px;top:275px;}
 .ts107p24{position:absolute;left:106px;top:293px;}
 .ts107p26{position:absolute;left:106px;top:312px;}
 .ts107p27{position:absolute;left:106px;top:330px;}
 .ts107p28{position:absolute;left:106px;top:348px;}
 .ts107p30{position:absolute;left:106px;top:367px;}
 .ts107p31{position:absolute;left:106px;top:385px;}
 .ts107p32{position:absolute;left:106px;top:404px;}
 .ts107p34{position:absolute;left:106px;top:422px;}
 .ts107p35{position:absolute;left:106px;top:440px;}
 .ts107p37{position:absolute;left:106px;top:459px;}
 .ts107p38{position:absolute;left:106px;top:477px;}
 .ts107p39{position:absolute;left:106px;top:496px;}
 .ts107p41{position:absolute;left:106px;top:514px;}
 .ts107p42{position:absolute;left:106px;top:532px;}
 .ts107p43{position:absolute;left:106px;top:551px;}
 .ts107p45{position:absolute;left:106px;top:569px;}
 .ts107p47{position:absolute;left:106px;top:588px;}
 .ts107p48{position:absolute;left:106px;top:606px;}
 .ts107p50{position:absolute;left:106px;top:624px;}
 .ts107p51{position:absolute;left:106px;top:643px;}
 .ts107p52{position:absolute;left:106px;top:661px;}
 .ts107p53{position:absolute;left:106px;top:680px;}
 .ts107p55{position:absolute;left:106px;top:698px;}
 .ts107p56{position:absolute;left:106px;top:716px;}
 .ts107p57{position:absolute;left:106px;top:735px;}
 .ts107p59{position:absolute;left:106px;top:753px;}
 .ts107p60{position:absolute;left:106px;top:772px;}
 .ts107p61{position:absolute;left:106px;top:790px;}
 .ts107p63{position:absolute;left:106px;top:808px;}
 .ts107p65{position:absolute;left:106px;top:827px;}
 .ts107p66{position:absolute;left:106px;top:845px;}
 .ts107p68{position:absolute;left:106px;top:864px;}
 .ts107p69{position:absolute;left:106px;top:882px;}
 .ts107p70{position:absolute;left:106px;top:900px;}
 .ts107p72{position:absolute;left:106px;top:919px;}
 .ts107p73{position:absolute;left:106px;top:937px;}
 .ts107p75{position:absolute;left:106px;top:956px;}
 .ts107p76{position:absolute;left:552px;top:605px;}
 .ts107p78{position:absolute;left:552px;top:617px;}
 .ts107p79{position:absolute;left:552px;top:629px;}
 .ts107p80{position:absolute;left:552px;top:641px;}

 /* Font Styles */
 .ft0p107{font-style:normal;font-weight:bold;font-size:13px;font-family:arial,sans-serif;color:#000000;}
 .ft1p107{font-weight:normal;}
 .ft2p107{font-style:normal;font-weight:normal;font-size:13px;font-family:"times new roman","times new roman",times,serif;color:#000000;}
 .ft3p107{font-style:normal;font-weight:normal;font-size:16px;font-family:"times new roman","times new roman",times,serif;color:#000000;}
 .ft4p107{font-style:normal;font-weight:bold;font-size:11px;font-family:arial,sans-serif;color:#000000;}
 .ft5p107{font-style:normal;font-weight:normal;font-size:16px;font-family:arial,sans-serif;color:#000000;}
 .ft6p107{font-style:normal;font-weight:bold;font-size:11px;font-family:arial,sans-serif;color:#FFFFFF;}
 .ft7p107{font-style:normal;font-weight:normal;font-size:11px;font-family:arial,sans-serif;color:#000000;}

 /* Background Style */
 .styleBackground107{position:absolute;left:105px;top:605px}

 /* Navigation Styles */
 .styleNavBarTop{position:absolute;left:0px;top:2px}
 .nb{position:absolute;left:2px;top:0px}
 .nbs{position:absolute;left:0px;top:0px}
 .nbe{position:absolute;left:836px;top:0px}
 .styleNavBarBot{position:absolute;left:0px;top:1117px}
-->
</STYLE>
<!--End of page styles-->

</head>
<body bgcolor="#ffffff" text="#000000" link="#0000FF" Vlink="#660099">

<table id="pageTable" width="836" STYLE="position: relative; left: auto; top: auto;"><tr><td>
<div class=nbs><img src="./navbarstart.gif" width="2" height="30"></div>
<div class=nb><img src="./navbar.gif" width="836" height="30" alt="Navigation bar"></div>
<div class=nbe><img src="./navbarend.gif" width="2" height="30"></div>
<div class=styleNavBarTop>
<table width="834" height="26" border="0" cellspacing="0">
  <tr align="left">
    <td width="4">&nbsp;</td>
    <td width="25" align="center"><a href="http://www.gravitybox.com" target="_parent"><img src="./home.gif" border="0" alt="Home"></a></td>
    <td width="25" align="center"><a href="#" onClick="window.open('./print.html','Printing','width=300,height=100,toolbar=no,directories=no');return false;"><img src="./print.gif" border="0" alt="Print document"></a></td>
    <td width="10" align="center"><img src="./separator.gif" border="0"></td>
    <td width="18" align="center"><a href="./index1.html"><img src="./start.gif" width="18" height="14" border="0" alt="Start"></a></td>
    <td width="18" align="center"><a href="./index106.html"><img src="./back.gif" width="14" height="14" border="0" alt="Previous page"></a></td>
    <td width="80" valign="middle"><table width="100%" height="16" border="0" cellspacing="1" bgcolor="#ACA899"><tr><td align="center" bgcolor="#ffffff"><font face=verdana,arial,sans-serif><font size="1">&nbsp;107 of 234&nbsp;</font></font></td></tr></table></td>
    <td width="18" align="center"><a href="./index108.html"><img src="./forward.gif" width="14" height="14" border="0" alt="Next page"></a></td>
    <td width="18" align="center"><a href="./index234.html"><img src="./end.gif" width="18" height="14" border="0" alt="End"></a></td>
    <td width="620">&nbsp;</td>
  </tr>
</table>
<p>
</div>
<nobr>
<div class=styleBackground107><img src="./background107.png" width="633" height="450" border="0" alt=""></div>
<div class=ts107p0><span class="ft0p107"> </span></div>
<div class=ts107p1><span class="ft0p107">Gravitybox Schedule Primer<span class="ft1p107"> </span></span></div>
<div class=ts107p3><span class="ft0p107">Page 105&nbsp; </span></div>
<div class=ts107p7><span class="ft2p107"> </span></div>
<div class=ts107p8><span class="ft3p107"> </span></div>
<div class=ts107p9><span class="ft4p107">1998&#45;2004 Gravitybox Software LLC<span class="ft3p107"> </span></span></div>
<div class=ts107p13><span class="ft5p107">until the MaxDate of the schedule. All appointments will be created on a Monday. Since </span></div>
<div class=ts107p14><span class="ft5p107">the WeekInterval is set to &#147;1&#148;, an appointment will be created every week. </span></div>
<div class=ts107p17><span class="ft5p107"> </span></div>
<div class=ts107p18><span class="ft5p107">Now that recurring appointments can be created, there is a question, &#147;How can we </span></div>
<div class=ts107p19><span class="ft5p107">remove the collection of them?&#148; As always there are two ways to remove appointments: </span></div>
<div class=ts107p20><span class="ft5p107">in code or with user interaction. To remove a group of appointments in code, the </span></div>
<div class=ts107p22><span class="ft5p107">&#147;RemoveRecurrence&#148; method of the ScheduleItems collection may be used. This </span></div>
<div class=ts107p23><span class="ft5p107">method receives two parameters. The first is an existing appointment object, or its key, </span></div>
<div class=ts107p24><span class="ft5p107">index, or GroupId. Any one of these may be used to determine the GroupId. The second </span></div>
<div class=ts107p26><span class="ft5p107">parameter determines if the specified appointment is removed along with all of its </span></div>
<div class=ts107p27><span class="ft5p107">recurrences. If the first parameter is a GroupId the second parameter is ignored. </span></div>
<div class=ts107p28><span class="ft5p107">However if the first parameter is an object, index, or key; the second parameter play a </span></div>
<div class=ts107p30><span class="ft5p107">significant role. If you wish to remove all occurrences of an appointment but not the </span></div>
<div class=ts107p31><span class="ft5p107">original appointment itself then set the second parameter to false; otherwise set it to </span></div>
<div class=ts107p32><span class="ft5p107">true. </span></div>
<div class=ts107p34><span class="ft5p107"> </span></div>
<div class=ts107p35><span class="ft5p107">Another way to remove an appointment&#146;s recurrences is to use the provided GUI. Under </span></div>
<div class=ts107p37><span class="ft5p107">normal circumstances when the user highlights an appointment and presses the </span></div>
<div class=ts107p38><span class="ft5p107">&#60;Delete&#62; key, he is prompted to remove the selected appointment. If the appointment is </span></div>
<div class=ts107p39><span class="ft5p107">part of a group, the prompt changes and asks the user if he wishes to remove the entire </span></div>
<div class=ts107p41><span class="ft5p107">series of appointments or the single, selected one. This assumes that the </span></div>
<div class=ts107p42><span class="ft5p107">&#147;AllowRecurrences&#148; property is set. If it is not set, the schedule does not recognize </span></div>
<div class=ts107p43><span class="ft5p107">groups. Even when there are multiple appointments with the same GroupId the delete </span></div>
<div class=ts107p45><span class="ft5p107">prompt will not change since the schedule is configured to ignore groups completely. </span></div>
<div class=ts107p47><span class="ft5p107"> </span></div>
<div class=ts107p48><span class="ft5p107">The Recurrence object&#146;s state may be saved if need be. It </span></div>
<div class=ts107p50><span class="ft5p107">contains the methods &#147;ImportXML&#148; and &#147;ExportXML&#148;. The </span></div>
<div class=ts107p51><span class="ft5p107">ImportXML method takes an XML, string parameter and </span></div>
<div class=ts107p52><span class="ft5p107">loads the object from it. The ExportXML will return the XML state of the object. You may </span></div>
<div class=ts107p53><span class="ft5p107">use these methods to load and store the recurrence pattern from and to a string. This </span></div>
<div class=ts107p55><span class="ft5p107">may be useful in the certain situations. The ScheduleRecurrence control has a </span></div>
<div class=ts107p56><span class="ft5p107">Recurrence object on it. When the control is loaded, its object has the default state. You </span></div>
<div class=ts107p57><span class="ft5p107">may wish to load a previous state. An example of the usefulness of these methods is </span></div>
<div class=ts107p59><span class="ft5p107">illustrated as follows. Put a ScheduleRecurrence control on a form. When the form is </span></div>
<div class=ts107p60><span class="ft5p107">load the user can set each property to some value. Now the user unloads the form and </span></div>
<div class=ts107p61><span class="ft5p107">the control along with it of course. If the user loads this form again, he will probably </span></div>
<div class=ts107p63><span class="ft5p107">expect his settings from the last time to be restored. This does not happen &#147;auto&#45;</span></div>
<div class=ts107p65><span class="ft5p107">magically&#148;. In the form unload event you can store the string from the </span></div>
<div class=ts107p66><span class="ft5p107">ScheduleRecurrence control&#146;s ExportXML method in a string somewhere. On the load </span></div>
<div class=ts107p68><span class="ft5p107">event of the form, you can use the ImportXML method to restore the previous state of </span></div>
<div class=ts107p69><span class="ft5p107">the control that the user set. This is exactly what happens in the background on the </span></div>
<div class=ts107p70><span class="ft5p107">ScheduleProperties control. When the user presses the &#147;Recurrences&#148; button on this </span></div>
<div class=ts107p72><span class="ft5p107">control, a form is loaded with a ScheduleRecurrence control. Each time the button is </span></div>
<div class=ts107p73><span class="ft5p107">pressed the previous state of the recurrence pattern is displayed. </span></div>
<div class=ts107p75><span class="ft5p107"> </span></div>
<div class=ts107p76><span class="ft6p107">Quick Tip </span></div>
<div class=ts107p78><span class="ft7p107">Dump the recurrence information to </span></div>
<div class=ts107p79><span class="ft7p107">an XML string or file for later use with </span></div>
<div class=ts107p80><span class="ft7p107">the object&#146;s &#147;ExportXML&#148; method. </span></div>
<div class=styleNavBarBot>
<table width="836" border="0" cellspacing="2">
  <tr></tr>
  <tr>
    <td width="118"><a href="http://www.purepage.com"><img src="./smalllogo.gif" width="118" height="46" border="0" alt="http://www.purepage.com"></a></td>
    <td></td>
  </tr>
</table>
</div>

</td></tr></table>

</body>
</html>
